#include #include #include #define RX_PIN D7 #define TX_PIN D6 HardwareSerial mp3Serial(1); JQ6500_Serial mp3(mp3Serial); typedef struct struct_message { int trigger; } struct_message; struct_message msg; // ESP-NOW receive callback void OnDataRecv(const esp_now_recv_info_t *info, const uint8_t *incomingData, int len) { memcpy(&msg, incomingData, sizeof(msg)); Serial.println("Data received → playing track 4"); mp3.playFileByIndexNumber(4); } void setup() { Serial.begin(115200); // --- MP3 INIT --- mp3Serial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN); delay(3000); mp3.reset(); delay(1000); mp3.setSource(MP3_SRC_BUILTIN); delay(500); mp3.setVolume(25); delay(500); Serial.println("MP3 Ready"); // --- ESP-NOW INIT --- WiFi.mode(WIFI_STA); WiFi.disconnect(); if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW init failed"); return; } esp_now_register_recv_cb(OnDataRecv); Serial.println("Receiver ready"); } void loop() {}